package org.hank.compose_yyzs.db.dao

import androidx.room.Dao
import androidx.room.Insert
import androidx.room.Query
import androidx.room.TypeConverter
import androidx.room.TypeConverters
import androidx.room.Update
import kotlinx.coroutines.flow.Flow
import org.hank.compose_yyzs.bean.ProjectTreeNode
import org.hank.compose_yyzs.bean.UnUploadInfo
import org.hank.compose_yyzs.db.converters.ProjectTreeTypeConverter

//  ┏┓　　　┏┓
//┏┛┻━━━┛┻┓
//┃　　　　　　　┃
//┃　　　━　　　┃
//┃　┳┛　┗┳　┃
//┃　　　　　　　┃
//┃　　　┻　　　┃
//┃　　　　　　　┃
//┗━┓　　　┏━┛
//    ┃　　　┃                  神兽保佑
//    ┃　　　┃                  永无BUG！
//    ┃　　　┗━━━┓
//    ┃　　　　　　　┣┓
//    ┃　　　　　　　┏┛
//    ┗┓┓┏━┳┓┏┛
//      ┃┫┫　┃┫┫
//      ┗┻┛　┗┻┛
/**
 *@auth: Hank
 *邮箱: cs16xiaoc1@163.com
 *创建时间: 2023/11/10 11:18
 *描述:
 */
@Dao
@TypeConverters(ProjectTreeTypeConverter::class)
interface ProjectDao {
    @get:Query("select * from ProjectTreeNode")
    val filesList: Flow<MutableList<ProjectTreeNode>>?

    @Query("delete from ProjectTreeNode")
    suspend fun delAll(): Int

    @Insert
    suspend fun insert(vararg projectTreeNode: ProjectTreeNode):LongArray

    @Query("select count(*) from ProjectTreeNode")
    suspend fun getProjectTreeSize():Int
}